<?php

/*
  冒泡排序
  原理:比较两个相邻的元素，将值大的元素交换到右边
  N个数字要排序完成，总共进行N-1趟排序，每i趟的排序次数为(N-i)次
  url:https://www.cnblogs.com/bigdata-stone/p/10464243.html 冒泡排序
  url:https://www.cnblogs.com/mzhaox/p/11218297.html 算法
 */

 $arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39, 2];
 //冒泡排序
 function bubbleSort($arr) {
    $len = count($arr);
    //该层循环控制 需要冒泡的轮数
    for ($i = 1; $i < $len; $i++) {//每次比较次数减少
        //该层循环用来控制每轮 冒出一个数 需要比较的次数
        for ($k = 0; $k < $len - $i; $k++) {
            if ($arr[$k] > $arr[$k + 1]) {    //从小到大 < || 从大到小 >
                $tmp         = $arr[$k + 1]; // 声明一个临时变量
                $arr[$k + 1] = $arr[$k];
                $arr[$k]     = $tmp;
            }
        }
    }
    return $arr;
 }

 $arr = bubbleSort($arr);
 echo "<pre>";
 print_r($arr);

